$(function () {

  var layer = layui.layer

  // 1.1 获取裁剪区域的 DOM 元素
  var $image = $('#image')
  // 1.2 配置选项
  const options = {
    // 纵横比
    aspectRatio: 1,
    // 指定预览区域
    preview: '.img-preview'
  }

  // 1.3 创建裁剪区域
  $image.cropper(options)

  // 上传按钮绑定事件
  $('#btnChooseImage').on('click', function () {
    $('#file').click()
  })

  // 为文件选择绑定 change 事件
  $('#file').on('change', function (e) {

    var fileslist = e.target.files
    if (fileslist.length === 0) return layer.msg('请上传照片')

    // 1. 拿到用户选择的文件
    var file = e.target.files[0]
    // 2. 将文件，转化为路径
    var imgURL = URL.createObjectURL(file)
    // 3. 重新初始化裁剪区域
    $image
      .cropper('destroy') // 销毁旧的裁剪区域
      .attr('src', imgURL) // 重新设置图片路径
      .cropper(options) // 重新初始化裁剪区域


  })

  // 确定按钮添加事件，即将图片通过接口上传至服务器
  $('#btnUpload').on('click', function () {
    // 1. 要拿到用户裁剪之后的头像，这个 dataURL 将是上传到后台服务器的图片地址
    var dataURL = $image
      .cropper('getCroppedCanvas', {
        // 创建一个 Canvas 画布
        width: 100,
        height: 100
      })
      .toDataURL('image/png') // 将 Canvas 画布上的内容，转化为 base64 格式的字符串

    $.ajax({
      method: 'post',
      url: '/my/update/avatar',
      data: {
        avatar: dataURL
      },
      success: function (res) {
        if (res.status !== 0) return layer.msg('更换头像失败')

        layer.msg('更换头像成功')
        // 更新父页面的用户信息
        window.parent.getUserInfo()
      }
    })
  })

})
